package service;

import java.util.ArrayList;

import bean.Fabricante;
import bean.VOList;
import bean.vo.FabricanteVO;

@SuppressWarnings({"unchecked"})
public class ServiciosFabricante {
	
	protected static Fabricante buscarFabricante (String nombre) throws Exception {
		Fabricante f = (Fabricante) SistemaCVR.getInstancia().buscarEntidad(new Fabricante(nombre));
		return f;
	}
	
	public static FabricanteVO buscarFabricante (FabricanteVO f) throws Exception {
		Fabricante fabricante = ServiciosFabricante.buscarFabricante(f.getNombre());
		return fabricante != null ? fabricante.getVO() : null;
	}
	
	public static ArrayList<FabricanteVO> getFabricantes() throws Exception{
		return new VOList<FabricanteVO>().getVoList(SistemaCVR.getInstancia().getEntidades(Fabricante.class.getName()));
	}
	
	public static void crearFabricante (FabricanteVO f) throws Exception{
		if (ServiciosFabricante.buscarFabricante(f) == null) {
			Fabricante fabricante = new Fabricante(f.getNombre());
			SistemaCVR.getInstancia().agregarEntidad(fabricante);
		} else {
			throw new Exception("ERROR - Ya existe un fabricante con el nombre ingresado.");
		}
	}
	
	public static void eliminarFabricante (FabricanteVO f) throws Exception {
		Fabricante fabricante = ServiciosFabricante.buscarFabricante(f.getNombre());
		if (fabricante != null ){
			SistemaCVR.getInstancia().eliminarEntidad(fabricante);
		} else {
			throw new Exception("ERROR - No existe el fabricante con el nombre ingresado.");
		}
	}
}
